1. Technical Field
This invention relates generally to switches, and more particularly, but not exclusively, to a system and method for adaptively controlling traffic flow within a network system to limit network switching system congestion.
2. Description of the Related Art
Networks, such as local area networks (i.e., LANs) and wide area networks (i.e., WANs, e.g., the Internet), enable a plurality of nodes to communicate with each other. Nodes can include computers, servers, storage devices, mobile devices, PDAs, wireless telephones, etc. Networks can include the nodes themselves, a connecting medium (wired, wireless and/or a combination of wired and wireless), and network switching systems such as routers, hubs and/or switches.
The network switching systems route traffic between various nodes of the network. However, in certain circumstances the network switching systems may not be able to instantaneously route traffic to a certain node. For example, if several nodes are transmitting data to a single node, a network switching system may become overloaded with respect to that one node. In another example, the receiving node may be unable to receive data as fast the transmitting node is transmitting the data. To overcome this difficulty, network switching systems use receiving and transmit queues (or buffers) to temporarily store received data. However, these queues can also become overloaded.
When network switching system queues and other network switching system resources become congested according to a resource usage measurement, conventional network switching systems transmit pause on packets to the networks nodes that are causing the congestion because of excessive packet transmission. The transmitted pause on packets cause the transmitting nodes to temporarily cease transmitting data. Once the congestion decreases to a predetermined level, the network switching systems transmit pause off packets to the network nodes that received the pause on packets, which enables the network nodes to begin transmitting again.
However, because the pause on and pause off packets are transmitted based on only sequential resource usage measurements, the pause on and off conditions tend to cycle back and forth rapidly, thereby not fully alleviating the congestion condition or not alleviating the congestion condition for any meaningful amount of time. Further, conventional network switching systems only measure resource congestion as it relates to unicast packets. Accordingly, in some instances, network nodes can monopolize network switching systems by transmitting multicast and broadcast packets. An additional drawback of conventional switching systems is that they use asynchronous loopback logic, which can cause complications because the underpinning of network switching systems is generally based on synchronous design.
Therefore, a new system and method are needed that alleviates these problems.